home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 September / PCWorld_2008-09_cd.bin / v cisle / sadanastroju / favloc-1.2-fx+tb.xpi / chrome / favloc.jar / content / favlocUnknown.js < prev    next >
Text File  |  2008-06-18  |  7KB  |  166 lines

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
  3.  *
  4.  * The contents of this file are subject to the Mozilla Public License Version
  5.  * 1.1 (the "License"); you may not use this file except in compliance with
  6.  * the License. You may obtain a copy of the License at
  7.  * http://www.mozilla.org/MPL/
  8.  *
  9.  * Software distributed under the License is distributed on an "AS IS" basis,
  10.  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
  11.  * for the specific language governing rights and limitations under the
  12.  * License.
  13.  *
  14.  * The Original Code is FavLoc
  15.  *
  16.  * The Initial Developer of the Original Code is Justin Scott.
  17.  * Portions created by the Initial Developer are Copyright (C) 2006
  18.  * the Initial Developer. All Rights Reserved.
  19.  *
  20.  * Contributor(s): (none)
  21.  *
  22.  * Alternatively, the contents of this file may be used under the terms of
  23.  * either the GNU General Public License Version 2 or later (the "GPL"), or
  24.  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
  25.  * in which case the provisions of the GPL or the LGPL are applicable instead
  26.  * of those above. If you wish to allow use of your version of this file only
  27.  * under the terms of either the GPL or the LGPL, and not to allow others to
  28.  * use your version of this file under the terms of the MPL, indicate your
  29.  * decision by deleting the provisions above and replace them with the notice
  30.  * and other provisions required by the GPL or the LGPL. If you do not delete
  31.  * the provisions above, a recipient may use your version of this file under
  32.  * the terms of any one of the MPL, the GPL or the LGPL.
  33.  *
  34.  * ***** END LICENSE BLOCK ***** */
  35. var FavLoc;
  36.  
  37. var FavLocUnknown = {
  38.     //Populate dropdown menu from saved preferences
  39.     init: function() {
  40.         FavLoc = Components.classes['@fligtar.com/favloc;1'].getService().wrappedJSObject;
  41.  
  42.         //see http://lxr.mozilla.org/mozilla/source/toolkit/mozapps/downloads/src/nsHelperAppDlg.js.in
  43.         //if true, we're using the executable save-only box
  44.         if (document.getElementById('normalBox') && document.getElementById('normalBox').collapsed == true) {
  45.             document.getElementById('open').parentNode.collapsed = true;
  46.             document.getElementById('rememberChoice').parentNode.collapsed = true;
  47.             document.getElementById('normalBox').collapsed = false;
  48.             
  49.             var separators = document.getElementById('normalBox').getElementsByTagName('separator');
  50.             for (var i = 0; i < separators.length; ++i) {
  51.                 separators[i].collapsed = true;
  52.             }
  53.             
  54.             document.getElementById('basicBox').collapsed = true;
  55.             document.getElementById('normalBox').collapsed = false;
  56.             window.sizeToContent();
  57.         }
  58.  
  59.         var menu = document.getElementById('download-favloc');
  60.         var popup = document.getElementById('favlocPopup');
  61.         var menulist = document.getElementById('favlocList');
  62.  
  63.         
  64.         if (!FavLoc.settings['show-download']) {
  65.             menu.hidden = true;
  66.             return false;
  67.         }
  68.         else
  69.             menu.hidden = false;
  70.  
  71.         if (FavLoc.favorites.length > 0 && (FavLoc.names[0] != "" && FavLoc.favorites[0] != "")) {
  72.             //Automatically selected favloc radio if pref is set
  73.             if (FavLoc.settings['automatically-select']) {
  74.                 document.getElementById('mode').selectedItem = document.getElementById('favlocRadio');
  75.             }
  76.         
  77.             for (var i = 0; i < FavLoc.favorites.length; i++) {
  78.                 if (FavLoc.favorites[i] != "" && FavLoc.names[i] != "") {
  79.                     var menuitem = document.createElement('menuitem');
  80.                     menuitem.setAttribute('label', FavLoc.names[i]);
  81.                     menuitem.setAttribute('value', FavLoc.favorites[i]);
  82.                     popup.appendChild(menuitem);
  83.                     //Automatically selected last saved location if pref is set
  84.                     if (FavLoc.settings['default-last-saved'] && FavLoc.lastSaved == FavLoc.favorites[i]) {
  85.                         menulist.selectedItem = menuitem;
  86.                     }
  87.                 }
  88.             }
  89.         }
  90.         else {
  91.             document.getElementById('favlocList').disabled = true;
  92.             document.getElementById('favlocRadio').disabled = true;
  93.         }
  94.         
  95.         var radiogroup = document.getElementById("mode");
  96.         radiogroup.addEventListener("select", function(e) { new FavLocUnknown.updateSelected(); }, false);
  97.         //document.documentElement.setAttribute('ondialogaccept', 'FavLocUnknown.dialogAccept()');
  98.                 document.documentElement.setAttribute('ondialogaccept',
  99.                         'if (FavLocUnknown.dialogAccept()) { ' + document.documentElement.getAttribute('ondialogaccept') + '}');
  100.         
  101.         return true;
  102.     },
  103.     
  104.     //If user selects from the drop down box, change mode/radio button to favloc
  105.     selectFavLoc: function() {
  106.         document.getElementById("mode").selectedItem = document.getElementById("favlocRadio");
  107.     },
  108.     
  109.     //Download file
  110.     dialogAccept: function() {
  111.         var browser = FavLoc.getBrowserWindow();
  112.         
  113.         if (document.getElementById("mode").selectedItem == document.getElementById("favlocRadio")) {
  114.             var url = dialog.mLauncher.source.spec;
  115.             var filename = dialog.mLauncher.suggestedFileName;
  116.             var location = document.getElementById("favlocList").value;
  117.             
  118.             var dir = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile);
  119.             dir.initWithPath(location);
  120.             
  121.             if (dir.exists()) {
  122.                 dir.append(filename);
  123.                 
  124.                 //Check file existance
  125.                 if(dir.exists()) {
  126.                     var newDir = FavLoc.handleOverwrite(filename, location, FavLoc.overwrite, window);
  127.                     if (newDir != false) {
  128.                         dir = newDir;
  129.                     }
  130.                 }
  131.             
  132.                 window.close();
  133.                 var chosenData = new browser.AutoChosen(dir, browser.makeURI(url));
  134.                 browser.internalSave(url, null, "", null, null, null, null, chosenData, null, true);
  135.                 FavLoc.setLastSaved(location);
  136.             } else {
  137.                 alert(gFavLocBundle.GetStringFromName("favloc.nolongerexists"));
  138.             }
  139.                         
  140.                         return false;
  141.         }
  142.         
  143.                 return true;
  144.     },
  145.     
  146.     //enable/disable remember choice checkbox based on which mode is selected
  147.     updateSelected: function() {
  148.         radiogroup = document.getElementById("mode");
  149.         
  150.         if (radiogroup.selectedItem == document.getElementById("favlocRadio")) {
  151.             if(document.getElementById("rememberChoice"))
  152.                 document.getElementById("rememberChoice").disabled = true;
  153.             if(document.getElementById("alwaysHandle"))
  154.                 document.getElementById("alwaysHandle").disabled = true;
  155.         }
  156.         else {
  157.             if(document.getElementById("rememberChoice"))
  158.                 document.getElementById("rememberChoice").disabled = false;
  159.             if(document.getElementById("alwaysHandle"))
  160.                 document.getElementById("alwaysHandle").disabled = false;
  161.         }
  162.     }
  163.  
  164. };
  165.  
  166. window.addEventListener("load",  function(e) { new FavLocUnknown.init(); }, false);